package com.probox.common.entity.service.customer;

import com.baomidou.mybatisplus.extension.service.IService;
import com.probox.common.core.web.domain.AjaxResult;
import com.probox.common.entity.domain.customer.CustomerInfoArchives;
import com.probox.common.entity.vo.WeCom.WeComArchivesVo;

import java.util.List;
import java.util.Map;

/**
 * 客户档案Service接口
 *
 * @author usoft
 * @date 2022-11-10
 */
public interface ICustomerInfoArchivesService extends IService<CustomerInfoArchives> {

    /**
     * 根据服务项目和预约id查询对应的项目属性 (格子形式展示)
     *
     * @param itemId
     * @param subscribeId
     * @return
     */
    public AjaxResult listArchivesLatticeByItemId(Long itemId, Long subscribeId);

    /**
     * 根据服务项目和购买记录查询列表
     *
     * @param itemId
     * @param subscribeId
     * @return
     */
    public List<Map> listArchivesByItemId(Long itemId, Long subscribeId);

    /**
     * 查询客户档案
     *
     * @param archivesId 客户档案ID
     * @return 客户档案
     */
    public CustomerInfoArchives selectCustomerInfoArchivesById(Long archivesId);


    /**
     * 查询客户档案列表
     *
     * @param customerInfoArchives 客户档案
     * @return 客户档案集合
     */
    public List<CustomerInfoArchives> queryList(CustomerInfoArchives customerInfoArchives);

    /**
     * 新增客户档案
     *
     * @param customerInfoArchives 客户档案
     * @return 结果
     */
    public boolean insertCustomerInfoArchives(CustomerInfoArchives customerInfoArchives);

    /**
     * 修改客户档案
     *
     * @param customerInfoArchives 客户档案
     * @return 结果
     */
    public boolean updateCustomerInfoArchives(CustomerInfoArchives customerInfoArchives);

    /**
     * 批量删除客户档案
     *
     * @param archivesIds 需要删除的客户档案ID
     * @return 结果
     */
    public boolean deleteCustomerInfoArchivesByIds(Long[] archivesIds);

    /**
     * 批量新增
     *
     * @param list
     */
    public void addArchives(List<CustomerInfoArchives> list);

}
